Paul Eggert [Fri, 20 Nov 2015 04:09:11 +0000 (20:09 -0800)]
Simplify push_handler and profile its malloc
* src/lisp.h (PUSH_HANDLER): Remove.
All callers changed to use push_handler directly.
* src/eval.c (internal_condition_case)
(internal_condition_case_1, internal_condition_case_2)
(internal_condition_case_n):
Use same pattern as for other invokers of push_handler.
(push_handler, push_handler_nosignal): Use call-by-value
instead of call-by-reference. All uses changed.
(push_handler): Simplify by rewriting in terms of
push_handler_nosignal.
(push_handler_nosignal): Profile any newly allocated memory.
Paul Eggert [Fri, 20 Nov 2015 00:00:18 +0000 (16:00 -0800)]
* src/emacs-module.h: Include stddef.h, not stdlib.h.
Juanma Barranquero [Thu, 19 Nov 2015 20:32:43 +0000 (21:32 +0100)]
Discover repository version in linked worktrees (bug#21930)
* lisp/version.el (emacs-repository--version-git-1): Do not assume
HEAD is at .git/HEAD, it can also be at .git/worktrees/<branch>/HEAD.
(emacs-repository-get-version): Grok linked worktrees when EXTERNAL
is nil too.
Juri Linkov [Fri, 20 Nov 2015 00:00:48 +0000 (02:00 +0200)]
* lisp/replace.el (occur-regexp-descr): New function.
(occur-1, occur-engine): Use it.
* lisp/isearch.el (isearch-occur): Propertize regexp with
isearch-string and isearch-regexp-function-descr for
occur-regexp-descr to display the correct description
message in the header (bug#21176, bug#21180).
Karl Fogel [Thu, 19 Nov 2015 23:32:37 +0000 (17:32 -0600)]
Revert `open-line' electric-indent sensitivity
* lisp/simple.el (open-line): Remove electric indent code.
(electric-indent-just-newline): Don't declare.
* test/automated/simple-test.el (open-line-indent): Adjust test.
This partly reverts Artur Malabarba's change that added electric
indent sensitivity to `open-line' (Oct 24 22:26:27 2015 +0100, git
commit
bd4f04f86), and adjusts a new test he added right afterwards
(Sat Oct 24 23:43:06 2015 +0100, git commit
207f235e3) accordingly.
However, the new INTERACTIVE argument to `open-line', which he also
added in the first commit, is not reverted here.
See the thread "Questioning the new behavior of `open-line'." on the
Emacs Devel mailing list, and in particular this message:
From: Artur Malabarba
Subject: Re: Questioning the new behavior of `open-line'.
To: Karl Fogel
Cc: David Kastrup, Pierpaolo Bernardi, emacs-devel
Date: Wed, 18 Nov 2015 21:03:58 +0000
Message-ID: \
<CAAdUY-KN06pvCMy5bt3+Buk3yeKjf6n9iB2FaSTTOPpCqPwyhA@mail.gmail.com>
https://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01707.html
Paul Eggert [Thu, 19 Nov 2015 23:24:30 +0000 (15:24 -0800)]
Omit unnecessary clear in Fmodule_load
* src/emacs-module.c (Fmodule_load):
Simplify and avoid unnecessary initialization of priv member to 0.
* src/emacs-module.c: (module_vec_set, module_vec_get, module_vec_size)
Paul Eggert [Thu, 19 Nov 2015 23:01:26 +0000 (15:01 -0800)]
Prefer signed integer types in module code
Generally speaking, at the C level the Emacs source code prefers
signed types like ‘ptrdiff_t’ to unsigned types like ‘size_t’,
partly to avoid the usual signedness confusion when comparing values.
Change the module API to follow this convention.
Use ‘int’ for small values that can’t exceed INT_MAX.
* modules/mod-test/mod-test.c (Fmod_test_globref_make)
(Fmod_test_string_a_to_b, Fmod_test_vector_fill)
(Fmod_test_vector_eq):
* src/emacs-module.c (struct emacs_value_frame)
(module_make_global_ref, module_free_global_ref)
(module_copy_string_contents, module_make_string)
(module_vec_set, module_vec_get, module_vec_size):
* src/emacs-module.h (struct emacs_runtime, struct emacs_env_25):
* src/lread.c (suffix_p):
Prefer signed to unsigned integer types.
Paul Eggert [Thu, 19 Nov 2015 22:24:50 +0000 (14:24 -0800)]
Omit ‘const’ on locals
Remove ‘const’ qualifier from locals that were newly added.
We don’t normally bother declaring locals with ‘const’ even
though they are not modified, for the same reason we don’t
bother declaring them with ‘register’ even though their
addresses are not taken; the advantage in compile-time
checking isn’t worth the loss of readability.
* modules/mod-test/mod-test.c (Fmod_test_non_local_exit_funcall)
(Fmod_test_vector_fill, Fmod_test_vector_eq):
* src/emacs-module.c (MODULE_SETJMP_1)
(module_make_global_ref, module_free_global_ref)
(module_non_local_exit_get, module_make_function)
(module_extract_integer, module_extract_float)
(module_get_user_ptr, module_set_user_ptr)
(module_get_user_finalizer, module_set_user_finalizer)
(module_vec_get, Fmodule_call)
(module_non_local_exit_signal_1)
(module_non_local_exit_throw_1, lisp_to_value)
(finalize_storage, allocate_emacs_value, mark_modules)
(module_handle_signal, module_handle_throw)
(module_format_fun_env):
* src/eval.c (push_handler, push_handler_nosignal)
(init_handler):
* src/lread.c (suffix_p):
Omit unnecessary ‘const’.
Paul Eggert [Thu, 19 Nov 2015 22:03:29 +0000 (14:03 -0800)]
Prefer intmax_t to int64_t in module code
* modules/mod-test/mod-test.c (sum, Fmod_test_sum):
* src/emacs-module.c (module_extract_integer)
(module_make_integer):
* src/emacs-module.h (struct emacs_env_25):
Prefer intmax_t to int64_t. This doesn’t change the generated
code on any of the machines Emacs currently ports to, but it’s
at least in theory more future-proof as C99 doesn’t guarantee
that int64_t exists.
Paul Eggert [Thu, 19 Nov 2015 21:50:23 +0000 (13:50 -0800)]
Rename module.c to emacs-module.c, etc.
* src/emacs-module.c: Rename from src/module.c.
* src/emacs-module.h: Rename from src/module.h.
All uses changed.
Paul Eggert [Thu, 19 Nov 2015 19:49:27 +0000 (11:49 -0800)]
Fix minor module problems found by static checking
* src/dynlib.c (dynlib_close): #ifdef out for now, as it’s not used.
* src/eval.c, src/lisp.h (lisp_eval_depth): Now static.
* src/module.c (Fmodule_load): Fix pointer signedness bug.
(Fmodule_call): Tell GCC that the default case is unreachable.
Paul Eggert [Thu, 19 Nov 2015 19:31:45 +0000 (11:31 -0800)]
Style fixes for indenting etc. in module code
This is mostly indenting and spacing changes. Also, remove
some unnecessary static decls instead of bothering to reindent them.
* src/module.h (EMACS_EXTERN_C_BEGIN): Remove, and do this inline,
as most other Emacs files do for this sort of thing.
Eli Zaretskii [Thu, 19 Nov 2015 17:49:29 +0000 (19:49 +0200)]
Minor improvements in modules testing Makefile
* modules/mod-test/Makefile (EMACS, SO): New variables.
(CFLAGS): When SO = dll, don't use -fPIC.
(check): New target, runs the test.
Eli Zaretskii [Thu, 19 Nov 2015 17:21:50 +0000 (19:21 +0200)]
* .gitignore: Add "*.dll".
Paul Eggert [Thu, 19 Nov 2015 16:21:10 +0000 (08:21 -0800)]
Migrate modules/.gitignore into .gitignore
* .gitignore: Add former contents of modules/.gitignore.
* modules/.gitignore: Remove.
Paul Eggert [Thu, 19 Nov 2015 16:14:00 +0000 (08:14 -0800)]
Add copyright notices to module code
Put them in the usual format for GNU Emacs copyright notices.
Paul Eggert [Thu, 19 Nov 2015 15:53:51 +0000 (07:53 -0800)]
Rename emacs_module.h to module.h
* src/module.h: Rename from src/emacs_module.h.
All uses changed.
Juanma Barranquero [Thu, 19 Nov 2015 10:07:10 +0000 (11:07 +0100)]
* src/module.c (Fmodule_load): Remove unused vars `doc_name', `args'
Juanma Barranquero [Thu, 19 Nov 2015 10:02:38 +0000 (11:02 +0100)]
* src/lread.c (Fload): Remove unused variable `size'
Alan Mackenzie [Thu, 19 Nov 2015 09:38:48 +0000 (09:38 +0000)]
src/keyboard.c (pre-command-hook): Fix typo in doc string: "pre" -> "post".
Dmitry Gutov [Thu, 19 Nov 2015 01:37:55 +0000 (03:37 +0200)]
Prioritize looking inside vc-parent-buffer over log-view-mode fallback
* lisp/vc/vc.el (vc-deduce-fileset): Prioritize looking inside
vc-parent-buffer over log-view-mode fallback (bug#21955).
Ken Brown [Wed, 18 Nov 2015 20:17:58 +0000 (15:17 -0500)]
* configure.ac (LIBMODULES): Don’t define on Cygwin
Eli Zaretskii [Wed, 18 Nov 2015 20:09:08 +0000 (22:09 +0200)]
Fix MS-Windows build --with-modules
* src/module.c: Reformat copyright commentary.
(module_vec_get): Use explicit cast to size_t to avoid compiler
warning in 32-bit builds.
(check_main_thread) [WINDOWSNT]: Fix letter-case in Windows APIs.
Compare thread IDs directly, as GetThreadId is not available
before Windows Vista.
(check_main_thread) [WINDOWSNT]: Duplicate the thread handle
without using APIs and constants not available on XP and older
systems. Obtain and store the thread ID as well.
Eli Zaretskii [Wed, 18 Nov 2015 19:33:12 +0000 (21:33 +0200)]
; * admin/release-process: Minor copyedits and additions.
Aurélien Aptel [Mon, 16 Nov 2015 00:00:25 +0000 (01:00 +0100)]
Add dynamic module test and helper script
Add 'modhelp.py' script (python2) to automate module testing and
module generation.
To build and test all modules in the modules/ dir
$ ./modhelp.py test
To generate a module from template code (good starting point)
$ ./modhelp init mynewtestmodule
See the script -h option for more documentation.
* modules/modhelp.py: New module helper script.
* modules/mod-test/Makefile: New file. Makefile for the test module.
* modules/mod-test/mod-test.c: New file. Test module source file.
* modules/mod-test/test.el: New file. ert test suite for the test module.
* modules/.gitignore: New file. Local .gitignore file.
Co-authored-by: Philipp Stephani <phst@google.com>
Aurélien Aptel [Sun, 15 Nov 2015 23:53:15 +0000 (00:53 +0100)]
Make 'Fload' look for modules
'Fload' can now load dynamic modules. This also makes 'require' work.
* src/lread.c:
(suffix_p): New function.
(Fload): Use 'suffix_p'. Call 'Fmodule_load' when we try to load a file
with a module suffix.
(syms_of_lread): Append module suffix to 'Vload_suffixes'.
Aurélien Aptel [Sun, 15 Nov 2015 23:47:04 +0000 (00:47 +0100)]
Add dynamic module module support
* configure.ac: Add '--with-modules' option. Conditionally add
dynlib.o and module.o to the list of objects. Add any system
specific flags to the linker flags to support dynamic libraries.
* m4/ax_gcc_var_attribute.m4: Add autoconf extension to test gcc
attributes.
* src/Makefile.in: Conditionally add module objects and linker flags.
* src/alloc.c (garbage_collect_1): protect module local values from
GC.
* src/lisp.h: Add 'module_init' and 'syms_of_module' prototypes.
* src/emacs_module.h: New header file included by modules. Public
module API.
* src/module.c: New module implementation file.
Co-authored-by: Philipp Stephani <phst@google.com>
Aurélien Aptel [Sun, 15 Nov 2015 23:42:14 +0000 (00:42 +0100)]
Add new User Pointer (User_Ptr) type
* src/lisp.h: Add new Lisp_Misc_User_Ptr type.
(XUSER_PTR): New User_Ptr accessor.
* src/alloc.c (make_user_ptr): New function.
(mark_object, sweep_misc): Handle Lisp_Misc_User_Ptr.
* src/data.c (Ftype_of): Return 'user-ptr' for user pointer.
(Fuser-ptrp): New user pointer type predicate function.
(syms_of_data): New 'user-ptrp', 'user-ptr' symbol. New 'user-ptrp'
subr.
* src/print.c (print_object): Add printer for User_Ptr type.
Aurélien Aptel [Sun, 15 Nov 2015 23:36:35 +0000 (00:36 +0100)]
Add portable layer for dynamic loading
* src/dynlib.h: New file.
* src/dynlib.c: New file.
Co-authored-by: Philipp Stephani <phst@google.com>
Philipp Stephani [Sun, 15 Nov 2015 23:31:56 +0000 (00:31 +0100)]
Add catch-all & no-signal version of PUSH_HANDLER
Ground work for modules. Add a non-signaling version of PUSH_HANDLER and
a new "catch-all" handler type.
* src/eval.c (init_handler, push_handler, push_handler_nosignal): New
functions.
* src/fns.c (hash_remove_from_table): Expose function public.
* src/lisp.h: New handler type, define macro to push_handler call.
Ken Brown [Wed, 18 Nov 2015 19:16:40 +0000 (14:16 -0500)]
; * lisp/server.el (server-process-filter): Simplify last change
Ken Brown [Wed, 18 Nov 2015 18:34:47 +0000 (13:34 -0500)]
Silence byte-compiler warning
* lisp/server.el (server-process-filter): Silence byte-compiler
warning.
Paul Eggert [Wed, 18 Nov 2015 17:17:20 +0000 (09:17 -0800)]
Quote symbols in docstrings using `'
Be more systematic about quoting symbols `like-this' rather than
`like-this or 'like-this' in docstrings. This follows up Artur
Malabarba's email in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01647.html
Peder O. Klingenberg [Tue, 17 Nov 2015 20:47:27 +0000 (21:47 +0100)]
Fix savegames in dunnet
* lisp/play/dunnet.el (dun-rot13): Use the standard rot13-region instead
of separate implementation.
Artur Malabarba [Wed, 18 Nov 2015 10:28:02 +0000 (10:28 +0000)]
* lisp/emacs-lisp/package.el (package--with-response-buffer):
Ensure we're at the start of the buffer before searching for
the end of headers.
Xue Fuqiao [Wed, 18 Nov 2015 00:56:50 +0000 (08:56 +0800)]
* admin/release-process: Improve wording.
Xue Fuqiao [Sun, 15 Nov 2015 02:05:17 +0000 (10:05 +0800)]
Backport: * CONTRIBUTE: Remove information about feature freeze.
(cherry picked from commit
ae0653b5ab9ee223751ec389b87011963e1cbbef)
Xue Fuqiao [Sun, 15 Nov 2015 01:35:50 +0000 (09:35 +0800)]
Backport: Document the release process
* admin/notes/versioning: Add information about RC releases.
* admin/release-process: Document the release process.
* admin/authors.el (authors-ignored-files):
* admin/README: Change FOR-RELEASE to release-process.
* CONTRIBUTE:
* admin/notes/bugtracker: Don't mention FOR-RELEASE.
(cherry picked from commit
9a4aa0f5945a03611ae29c516025dbd353bd26ab)
Xue Fuqiao [Sun, 15 Nov 2015 01:32:12 +0000 (09:32 +0800)]
Backport: * admin/release-process: Rename from admin/FOR-RELEASE.
(cherry picked from commit
f8cc14b59700e51a4e31139c0a65c8154995e055)
Xue Fuqiao [Sat, 14 Nov 2015 04:49:17 +0000 (12:49 +0800)]
Backport: Mention CONTRIBUTE in README
Mention CONTRIBUTE in README, since it was moved from etc/ to root.
* etc/TODO: Remove the reference to `etc/CONTRIBUTE'.
* README: Mention CONTRIBUTE.
(cherry picked from commit
ed2e7e20ae0945288c98091f308f5460c3453873)
Paul Eggert [Tue, 17 Nov 2015 23:28:50 +0000 (15:28 -0800)]
Fix docstring quoting problems with ‘ '’
Problem reported by Artur Malabarba in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html
Most of these fixes are to documentation; many involve fixing
longstanding quoting glitches that are independent of the
recent substitute-command-keys changes. The changes to code are:
* lisp/cedet/mode-local.el (mode-local-augment-function-help)
(describe-mode-local-overload):
Substitute docstrings before displaying them.
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
Quote the generated docstring for later substitution.
Eli Zaretskii [Tue, 17 Nov 2015 19:07:37 +0000 (21:07 +0200)]
Improve configure --help text for wide ints
* configure.ac (wide-int): Clarify user-level advantages and
disadvantages.
Stephen Leake [Tue, 17 Nov 2015 13:46:11 +0000 (07:46 -0600)]
Improve doc string
* lisp/progmodes/xref.el (xref-backend-references): Improve doc string.
Paul Eggert [Tue, 17 Nov 2015 07:08:54 +0000 (23:08 -0800)]
eval_sub followed dangling pointer when debugging
Problem reported by Pip Cet (Bug#21245).
This bug could occur in eval_sub if the C compiler reused
storage associated with the ‘argvals’ local after ‘argvals’
went out of scope, and if the Elisp debugger stopped on Elisp
function exit and accessed ‘argvals’. It could also occur if
a variadic function was called with so many arguments (over
2048 args on x86-64) that SAFE_ALLOCA_LISP called malloc, then
SAFE_FREE freed the arguments, then the memory manager used
the storage for other purposes, then the debugger accessed the
arguments.
* src/eval.c (eval_sub): Declare ‘argvals’ at top level of
function body. Simplify local decls.
When allocating args via SAFE_ALLOCA, call
debugger before invoking SAFE_FREE, as the debugger needs
access to the args.
(eval_sub, apply_lambda): Rework to avoid need for
set_backtrace_debug_on_exit hack. This is cleaner,
and should work better with buggy custom debuggers.
Daiki Ueno [Tue, 17 Nov 2015 02:27:51 +0000 (11:27 +0900)]
* lisp/image-mode.el: Support encrypted file
(image-toggle-display-image): Read content from the buffer instead
of the file, if the buffer holds a decrypted data. (Bug#21870)
Paul Eggert [Tue, 17 Nov 2015 01:48:08 +0000 (17:48 -0800)]
ELF unexec: align section header
This ports the recent unexelf.c changes to Fedora x86-64
when configured with GCC’s -fsanitize=undefined option.
* src/unexelf.c (unexec): Align new_data2_size to a multiple
of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a
pointer aligned appropriately for its type.
Juanma Barranquero [Tue, 17 Nov 2015 01:02:07 +0000 (02:02 +0100)]
; lisp/window.el (display-buffer-at-bottom): Fix indentation
Andreas Schwab [Mon, 16 Nov 2015 22:47:17 +0000 (23:47 +0100)]
Do more checks on bytecode objects (Bug#21929)
* src/eval.c (funcall_lambda): Check size of compiled function
object.
(Ffetch_bytecode): Likewise.
Johan Bockgård [Sun, 15 Nov 2015 23:07:06 +0000 (00:07 +0100)]
pcase.el: Fix edebugging of backquoted cons patterns
* lisp/emacs-lisp/pcase.el (pcase-QPAT): Fix edebugging of backquoted
cons patterns. (Bug#21920)
Paul Eggert [Mon, 16 Nov 2015 21:09:46 +0000 (13:09 -0800)]
Improve fix for regex reentrancy abort
Suggested by Stefan Monnier (Bug#21688).
* src/syntax.c (update_syntax_table_forward):
Remove recently-added PROPERTIZE arg, and assume it is true.
All callers changed.
* src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
Invoke update_syntax_table directly.
Dmitry Gutov [Mon, 16 Nov 2015 17:15:28 +0000 (19:15 +0200)]
; Fix breakage in elisp-mode-tests.el
Artur Malabarba [Mon, 16 Nov 2015 14:35:31 +0000 (14:35 +0000)]
* lisp/faces.el (faces--attribute-at-point): Use `face-list-p'
Artur Malabarba [Mon, 16 Nov 2015 13:53:45 +0000 (13:53 +0000)]
* lisp/emacs-lisp/package.el (package--with-response-buffer): Missing require
Artur Malabarba [Mon, 16 Nov 2015 09:49:00 +0000 (09:49 +0000)]
* lisp/emacs-lisp/nadvice.el (add-function): Escape quote
Vasily Korytov [Sun, 15 Nov 2015 23:32:01 +0000 (01:32 +0200)]
Recognize .rbw and .pyw files (bug#18753)
* lisp/progmodes/python.el (auto-mode-alist):
Recognize .pyw files.
* lisp/progmodes/ruby-mode.el (auto-mode-alist):
Recognize .rbw files.
Dmitry Gutov [Sun, 15 Nov 2015 23:14:54 +0000 (01:14 +0200)]
Fix ruby-mode auto-mode-alist entry
* lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping
around the extensions (bug#21257).
Dmitry Gutov [Sun, 15 Nov 2015 22:30:12 +0000 (00:30 +0200)]
Fix etags completion near eob
* lisp/progmodes/etags.el (tags-completion-at-point-function):
Use `goto-char', to avoid the end-of-buffer error (bug#20061).
Alan Mackenzie [Sun, 15 Nov 2015 21:59:40 +0000 (21:59 +0000)]
De-pessimize detection of C++ member initialization lists.
list/progmodes/cc-engine.el (c-back-over-list-of-member-inits): New macro.
(c-back-over-member-initializers): Reformulate such that c-at-toplevel-p
is only called when a construct "looks right" rather than continually.
(c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode.
Artur Malabarba [Sun, 15 Nov 2015 21:28:37 +0000 (21:28 +0000)]
Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue.
* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function
(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.
Stephen Leake [Sat, 14 Nov 2015 22:44:58 +0000 (16:44 -0600)]
Improve a few doc strings, comments
* lisp/cedet/cedet-global.el (cedet-gnu-global-expand-filename):
* lisp/cedet/ede/locate.el (ede-locate-base):
* lisp/cedet/semantic/symref.el (semantic-symref-calculate-rootdir):
* src/fns.c (Fdelq): Improve doc string.
* lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Add FIXME.
Anders Lindgren [Sun, 15 Nov 2015 19:19:34 +0000 (20:19 +0100)]
Enhance NSTRACE (trace output for NextStep).
Trace can be disabled for groups of functions. By default, event
functions and functions that generate lots of output are disabled.
Trace output of Objective-C functions now use the "[ClassName
parameter:]" form.
* src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS)
(NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR)
(NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros,
controlling in which function groups trace should be active.
(NSTRACE_WHEN): Support for silencing a function, this also
silencing all called functions.
(NSTRACE_UNSILENCE): New macro, used to re-enable trace.
(NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to
print the full screen state in NSTRACE functions.
* src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they
can be accessed from multiple threads.
(nstrace_enabled_global): New variable, when FALSE, trace is
silenced.
(nstrace_restore_global_trace_state): New function, used to
restore `nstrace_enabled_global' at end of block.
([EmacsView setFrame:], [EmacsWindow setFrame:display:])
([EmacsWindow setFrame:display:animation:])
([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace
and call corresponding super function.
(Many functions): Add or enhance trace output.
* src/nsimage.m (ns_image_from_file): Enhanced trace output.
* src/nsfns.m (x_set_tool_bar_lines): Add trace output.
* src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace
and call corresponding super function.
Anders Lindgren [Sun, 15 Nov 2015 18:28:32 +0000 (19:28 +0100)]
; Cleanup of change log. Removed obsolete email addresses.
Anders Lindgren [Sun, 15 Nov 2015 18:17:53 +0000 (19:17 +0100)]
Fixed a toolbar related issue on OS X.
Earlier, when toggling the tool-bar in a maximized frame, the
frame size didn't match the number of text lines, leaving an
unused area at the bottom of the frame.
* nsfns.m (x_set_tool_bar_lines): Exit maximized and full height
fullscreen modes when tool bar is disabled.
Anders Lindgren [Sun, 15 Nov 2015 17:46:04 +0000 (18:46 +0100)]
Fixed OS X 10.6.8 build issue (bug#21862).
* src/nsterm.h (EmacsView): Add missing declarations.
* src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like
the standard method but without the notification parameter.
Intended to be used for direct calls.
([EmacsView windowDidEnterFullScreen]): Call the non-notification
version of `windowDidBecomeKey'. Made the notification method call
the non-notification method instead of the vice versa.
(NSWindowDidEnterFullScreenNotification): Deleted, no longer
needed.
Artur Malabarba [Sun, 15 Nov 2015 18:42:20 +0000 (18:42 +0000)]
* lisp/faces.el (faces--attribute-at-point): Fix an issue
Previous code would signal an error when the face at point was
a manually built list of attributes such as '(:foregroud "white").
* test/automated/faces-tests.el (faces--test-color-at-point): Add a test
Paul Eggert [Sun, 15 Nov 2015 09:14:39 +0000 (01:14 -0800)]
Fix regex abort when it tries to reenter itself
Problem reported by Ken Raeburn.
Solution suggested by Stefan Monnier (Bug#21688).
* src/regex.c (re_match_2_internal):
Use new _FAST functions to avoid regex code reentering itself.
* src/syntax.c (update_syntax_table_forward): New arg PROPERTIZE.
All callers changed.
* src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST)
(UPDATE_SYNTAX_TABLE_FAST): New inline functions.
Dmitry Gutov [Sun, 15 Nov 2015 05:25:19 +0000 (07:25 +0200)]
Improve Ruby 1.9-style keyword keys highlighting
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords):
Handle required keyword arguments (bug#21367).
And highlight the colon together with the name.
Dmitry Gutov [Sun, 15 Nov 2015 05:00:45 +0000 (07:00 +0200)]
Unify the absolutely equal xref-backend-references implementations
* lisp/progmodes/elisp-mode.el (xref-backend-references):
Remove.
* lisp/progmodes/etags.el (xref-backend-references):
Remove.
* lisp/progmodes/xref.el (xref-backend-references):
Define the default implementation.
Dmitry Gutov [Sun, 15 Nov 2015 04:31:51 +0000 (06:31 +0200)]
Update project-find-regexp for the new xref API
* lisp/progmodes/project.el (project--read-regexp):
Update to use the new xref API methods.
* lisp/progmodes/xref.el (xref-find-backend): Autoload.
Dmitry Gutov [Sun, 15 Nov 2015 03:59:34 +0000 (05:59 +0200)]
Fix replacing a match with a shorter string
In effect, partially reverting
fe973fc.
* lisp/progmodes/xref.el (xref-query-replace): Store the end
of each match as a marker again, instead of length.
(xref--query-replace-1): Update accordingly.
Artur Malabarba [Sat, 14 Nov 2015 21:13:12 +0000 (21:13 +0000)]
* lisp/progmodes/xref.el (xref-pop-marker-stack): Downgrade errors
Signal user-errors instead.
Eli Zaretskii [Sat, 14 Nov 2015 20:02:26 +0000 (22:02 +0200)]
Document 'describe-symbol'
* doc/emacs/help.texi (Help Summary): Mention "C-h o".
(Name Help): Document "C-h o" and describe-symbol.
* lisp/help-fns.el (describe-symbol): Doc fix.
Paul Eggert [Sat, 14 Nov 2015 19:48:16 +0000 (11:48 -0800)]
Change test name to avoid spellcheck issue.
Eli Zaretskii [Sat, 14 Nov 2015 19:38:47 +0000 (21:38 +0200)]
; * etc/NEWS: Minor improvements in wording.
Eli Zaretskii [Sat, 14 Nov 2015 17:27:52 +0000 (19:27 +0200)]
Avoid signaling an error in 'describe-symbol'
* lisp/help-fns.el (describe-symbol): Avoid errors when the symbol
exists as a function/variable/face/etc., but is undocumented.
* test/automated/help-fns.el (help-fns-test-describe-symbol): New
test.
Eli Zaretskii [Sat, 14 Nov 2015 16:25:24 +0000 (18:25 +0200)]
; * etc/NEWS: Fix formatting
Eli Zaretskii [Sat, 14 Nov 2015 16:22:45 +0000 (18:22 +0200)]
; * etc/NEWS: Some easily fixed documentation marks
Eli Zaretskii [Sat, 14 Nov 2015 16:20:36 +0000 (18:20 +0200)]
* INSTALL (--with-cairo): Document this new configure option.
Eli Zaretskii [Sat, 14 Nov 2015 16:12:25 +0000 (18:12 +0200)]
Document that GNU Make >= 3.81 is required to build Emacs
* doc/lispref/internals.texi (Building Emacs): Document that GNU
Make 3.81 or later is now required.
Artur Malabarba [Sat, 14 Nov 2015 15:44:44 +0000 (15:44 +0000)]
Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async.
(package--with-work-buffer-async): Reimplement as
`package--with-response-buffer'.
(package--with-work-buffer): Mark obsolete.
(package--with-response-buffer): New macro. This is a more self
contained and less contrived version of
`package--with-work-buffer-async'. It uses keyword arguments,
doesn't have async on the name, doesn't fallback on
`package--with-work-buffer', and has _much_ simpler error
handling. On master, this macro will soon be part of another
library (either standalone or inside url.el), which is why this
commit is not to be merged back.
(package--check-signature, package--download-one-archive)
(package-install-from-archive, describe-package-1): Use it.
(package--download-and-read-archives): Let
`package--download-one-archive' take care of calling
`package--update-downloads-in-progress'.
Eli Zaretskii [Sat, 14 Nov 2015 11:52:34 +0000 (13:52 +0200)]
* CONTRIBUTE (Branches): Improve wording for back-ported commits.
Dmitry Gutov [Sat, 14 Nov 2015 11:02:35 +0000 (13:02 +0200)]
Merge branch 'master' into emacs-25
Dmitry Gutov [Sat, 14 Nov 2015 01:03:58 +0000 (03:03 +0200)]
; Fix warnings
* lisp/vc/diff-mode.el (diff-kill-applied-hunks):
Fix unused variable warnings.
Dmitry Gutov [Sat, 14 Nov 2015 00:40:06 +0000 (02:40 +0200)]
; Update xref-etags-mode for the latest change
Dmitry Gutov [Sat, 14 Nov 2015 00:37:01 +0000 (02:37 +0200)]
Use generic dispatch for xref backends
* lisp/progmodes/xref.el (xref-backend-functions):
New variable.
(xref-find-function): Remove.
(xref-find-backend)
(xref--etags-backend): New functions.
(xref-identifier-at-point-function)
(xref-identifier-completion-table-function): Remove.
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, xref-backend-identifier-at-point)
(xref-backend-identifier-completion-table):
New generic functions.
* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Add
`elisp--xref-backend' to the beginning of
`xref-backend-functions', locally. Delete references to
removed functions and vars.
(elisp-xref-find): Remove.
(elisp--xref-backend): New function.
(elisp--xref-find-references, elisp--xref-find-apropos)
(elisp--xref-identifier-completion-table):
Turn into appropriately named generic methods.
* lisp/progmodes/etags.el (etags-xref-find): Remove.
(xref-backend-identifier-completion-table)
(xref-backend-references, xref-backend-definitions)
(xref-backend-apropos): New generic methods.
Juri Linkov [Fri, 13 Nov 2015 23:28:03 +0000 (01:28 +0200)]
Support rectangular regions for more commands
* lisp/simple.el (region-extract-function): Handle the arg value ‘bounds’.
(region-insert-function): New function.
(shell-command-on-region): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks.
(region-noncontiguous-p): New function.
* lisp/rect.el: Add function rectangle--insert-region
around region-insert-function.
(extract-rectangle-bounds): New function.
(rectangle--extract-region): Handle the arg value ‘bounds’.
(rectangle--insert-region): New function.
* lisp/emulation/cua-rect.el: Add function cua--insert-rectangle
around region-insert-function.
(cua--extract-rectangle-bounds): New function.
(cua--rectangle-region-extract): Handle the arg value ‘bounds’.
* lisp/replace.el (query-replace, query-replace-regexp): Add arg
‘region-noncontiguous-p’. Use ‘use-region-p’.
(query-replace-regexp-eval, map-query-replace-regexp)
(replace-string, replace-regexp): Use ‘use-region-p’.
(keep-lines, flush-lines, how-many): Use ‘use-region-p’.
(perform-replace): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks.
* src/casefiddle.c (Fdowncase_region): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks. (Bug#19829)
Dmitry Gutov [Mon, 9 Nov 2015 03:24:23 +0000 (05:24 +0200)]
Handle multiple matches on the same line; add highlighting
* lisp/progmodes/xref.el (xref-location-marker): Interpret the
column value in characters.
(xref--collect-matches): Rename from `xref--collect-match'.
Search for all matches in the hit line. Add `highlight' face to
the matched region in the summary. Update both callers.
Dmitry Gutov [Sun, 8 Nov 2015 03:01:05 +0000 (05:01 +0200)]
Replace xref-match-bounds with xref-match-length
Relying on xref-location-marker to point to the beginning of the match
* lisp/progmodes/xref.el (xref-match-bounds): Remove.
(xref-match-length): Add.
(xref-make-match): Change the arguments.
(xref--match-buffer-bounds): Remove.
(xref-match-item): Store length, instead of end-column.
(xref-pulse-momentarily)
(xref--collect-match)
(xref--query-replace-1): Update accordingly.
(xref-query-replace): Ditto. And check that the search results
are up-to-date.
John Wiegley [Fri, 13 Nov 2015 22:41:41 +0000 (14:41 -0800)]
Merge remote-tracking branch 'origin/master' into emacs-25
l3thal [Fri, 13 Nov 2015 21:37:26 +0000 (16:37 -0500)]
Merge branch 'erc-async-reconnect' into emacs-25
l3thal [Fri, 13 Nov 2015 21:34:32 +0000 (16:34 -0500)]
Reconnect asynchronously.
Paul Eggert [Fri, 13 Nov 2015 20:39:13 +0000 (12:39 -0800)]
Merge from gnulib
This incorporates:
2015-11-13 xalloc-oversized: improve performance with GCC 5
* lib/xalloc-oversized.h: Copy from gnulib.
Paul Eggert [Fri, 13 Nov 2015 20:02:21 +0000 (12:02 -0800)]
Spruce up ftfont.c memory allocation
* src/ftfont.c (setup_otf_gstring):
Avoid O(N**2) behavior when reallocating.
(ftfont_shape_by_flt): Prefer xpalloc to xrealloc when
reallocating buffers; this simplifies the code. Do not trust
mflt_run to leave the output areas unchanged on failure, as
this isn’t part of its interface spec.
Eli Zaretskii [Fri, 13 Nov 2015 20:03:12 +0000 (22:03 +0200)]
Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emacs into emacs-25
Paul Eggert [Fri, 13 Nov 2015 17:28:53 +0000 (09:28 -0800)]
Port recent XCB changes to 64-bit ‘long int’
For historical reasons, libX11 represents 32-bit values like Atoms as
‘long int’ even on platforms where ‘long int’ is 64 bits. XCB doesn’t
do that, so adapt the recent XCB code to behave properly on 64-bit
platforms. Also, fix what appears to be a bug in the interpretation
of xcb_get_property_value_length, at least on my Fedora platform
which is running libxcb-1.11-5.fc21.
* src/xfns.c (x_real_pos_and_offsets):
* src/xterm.c (get_current_wm_state):
xcb_get_property_value_length returns a byte count, not a word count.
For 32-bit quantities, xcb_get_property_value returns a vector
of 32-bit words, not of (possibly 64-bit) long int.
Backport.
Paul Eggert [Fri, 13 Nov 2015 16:44:14 +0000 (08:44 -0800)]
* src/undo.c (run_undoable_change): Now static.
Backport.
Eli Zaretskii [Fri, 13 Nov 2015 13:33:29 +0000 (15:33 +0200)]
Remove support for ':timeout' from w32 tray notifications
* src/w32fns.c (Fw32_notification_notify): Delete the code that
supports ':timeout'.
(syms_of_w32fns): Don't DEFSYM ':timeout'. This avoids clashes
with dbusbind.c when D-Bus is compiled in.
* doc/lispref/os.texi (Desktop Notifications): Don't mention
':timeout'.
Backport.
Juanma Barranquero [Fri, 13 Nov 2015 13:09:35 +0000 (14:09 +0100)]
* test/automated/simple-test.el: Add test for bug#20698 (bug#21885)
(simple-test--transpositions): New macro.
(simple-transpose-subr): New test.
Backport.
Juanma Barranquero [Fri, 13 Nov 2015 10:04:10 +0000 (11:04 +0100)]
* lisp/progmodes/elisp-mode.el: Declare function `project-roots'
Backport.
Juanma Barranquero [Fri, 13 Nov 2015 09:56:28 +0000 (10:56 +0100)]
* src/undo.c: Small fixes for previous change
(run_undoable_change): Mark void argument list.
(record_property_change): Remove unused variable `boundary'.
Backport.